﻿package dao;


import java.util.List;

import util.Page;

import model.Dept;

public interface DeptDAO {
	/**
	 * 
	 * @param pageNo 页面码
	 * @param pageSize 每页显示条数
	 * @return
	 */
	public Page<Dept> getAllDept(int pageNo,int pageSize);
	/**
	 * 根据部门部门名称查找部门返回部门对象
	 * @param pageNo 页面码
	 * @param pageSize 每页显示条数
	 * @param deptname 部门名称
	 * @return
	 */
	public Page<Dept> getDeptByName(int pageNo,int pageSize,String deptname);
	/**
	 * 根据部门部门id查找部门返回部门对象
	 * @param deptid 部门id
	 * @return
	 */
	public Dept getDeptById(int deptid);
	
	/**
	 * 根据上级部门ID查找部门返回分页部门对象
	 * @param pageNo
	 * @param pageSize
	 * @param headerid
	 * @return
	 */
	public Page<Dept> getDeptByHeaderId(int pageNo,int pageSize,int headerid);
	/**
	 * 根据部门状态查找部门返回分页部门对象
	 * @param pageNo
	 * @param pageSize
	 * @param status
	 * @return
	 */
	public Page<Dept> getDeptByStatus(int pageNo,int pageSize,boolean status);
	
	/**
	 * 根据部门名获取部门Id
	 */
	public Dept getDeptByName(String name);
	/**
	 * 根据上级部门得到子部门
	 * @param headerid 上级部门编号
	 * @return
	 */
	public List<Dept>getDeptByHeaderId(int headerid);
	/**
	 * 根据本部门返回上级部门
	 * @param dept 传入的部门
	 * @return
	 */
	public Dept getHeaderDept(Dept dept);
	/**
	 * 根据传入的对象添加一个部门
	 * @param dept
	 * @return
	 */
	public boolean addDept(Dept dept);
	/**
	 * 根据传入的对象修改一个部门
	 * @param dept
	 * @return
	 */
	public boolean updateDept(Dept dept);
	/**
	 * 根据一个部门对象删除部门
	 * @param dept
	 * @return
	 */
	public boolean deleteDept(Dept dept);
	/**
	 * 根据部门编号删除一个部门
	 * @param deptid
	 * @return
	 */
	public boolean deleteDeptById(int deptid);
	/**
	 * 通过id获取上级部门
	 */
	public Dept getDeptHeader(int deptid);
	/**
	 * 获取所有部门信息
	 */
	public List<Dept> getALLDept();
	/**
	 * 根据部门编号，判断该部门是否有员工
	 * @param deptid
	 * @return
	 */
	public boolean getHasDeptEmp(int deptid);
	/**
	 * 根据上级部门编号修改部门信息
	 * @param olddeptid
	 * @param newdeptid
	 * @return
	 */
	public boolean updateByHeader(int olddeptid,int newdeptid);
	
}
